package Vista;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

import Controlador.ControlGuardar;
import Controlador.ControlMovimientoAbajo;
import Controlador.ControlMovimientoArriba;
import Controlador.ControlMovimientoDerecha;
import Controlador.ControlMovimientoIzquierda;
import GPSChallenge.Ciudad;
import GPSChallenge.juego.Juego;

public class VistaJuego {
	
	public void dibujarManzanas(JFrame frame,int tamanio){
		
		for (int i=0; i < tamanio + 1; i++){
			int c = (i * 40);
			int d = (30 + c);			
			for(int j=0; j < tamanio + 1; j++){
				JButton button = new JButton();
				frame.getContentPane().add(button);
				int a = (j * 40);
				int b = (30 + a);
				button.setBounds(b,d,30,30);
			}
		}	
	}
	
	public void dibujar(Juego unJuego){
		
		final JFrame frame = new JFrame("GPS Challenge");
		frame.setVisible(true);
		frame.setSize(900,700);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);			
		frame.getContentPane().setLayout(null);
		
		Ciudad ciudad = unJuego.obtenerCiudad();
		int tamanio = ciudad.getTamanio();
		VistaCiudad vCiudad = new VistaCiudad();
		vCiudad.dibujar(frame,ciudad);
		
		VistaVehiculo vVehiculo = new VistaVehiculo();
		vVehiculo.dibujar(frame,unJuego.obtenerVehiculo(),unJuego);
		
		VistaPuntaje vPuntaje = new VistaPuntaje(frame);
		vPuntaje.actualizar(unJuego);
		
		VistaEstadoDeVehiculo unaVistaEstadoDeVehiculo = new VistaEstadoDeVehiculo(frame);		
		unaVistaEstadoDeVehiculo.actualizar(unJuego);
		
		JLabel label = new JLabel("Movimientos");
		frame.getContentPane().add(label);
		label.setBounds(700, 200, 100, 50);
		
		ControlMovimientoArriba cArriba = 
				new ControlMovimientoArriba(frame,unJuego,vVehiculo,vPuntaje,unaVistaEstadoDeVehiculo);			
		JButton arriba = new JButton("Arriba");
		frame.getContentPane().add(arriba);
		arriba.setBounds(700, 250, 80, 25);
		arriba.addActionListener(cArriba);
		
		ControlMovimientoAbajo cAbajo = 
				new ControlMovimientoAbajo(frame,unJuego,vVehiculo,vPuntaje,unaVistaEstadoDeVehiculo);
		JButton abajo = new JButton("Abajo");
		frame.getContentPane().add(abajo);
		abajo.setBounds(700, 350, 80, 25);
		abajo.addActionListener(cAbajo);
	    
		
		ControlMovimientoDerecha cDerecha =
				new ControlMovimientoDerecha(frame,unJuego,vVehiculo,vPuntaje,unaVistaEstadoDeVehiculo);
		JButton derecha = new JButton("derecha");
		frame.getContentPane().add(derecha);
		derecha.setBounds(750, 300, 90, 25);
		derecha.addActionListener(cDerecha);
	  
		ControlMovimientoIzquierda cIzquierda = 
				new ControlMovimientoIzquierda(frame,unJuego,vVehiculo,vPuntaje,unaVistaEstadoDeVehiculo);
		JButton izquierda = new JButton("izquierda");
		frame.getContentPane().add(izquierda);
		izquierda.setBounds(645, 300, 90, 25);
		izquierda.addActionListener(cIzquierda);
		
		ControlGuardar cGuardar = new ControlGuardar(frame,unJuego);
		JButton guardar = new JButton("Guardar");
		frame.getContentPane().add(guardar);
		guardar.setBounds(700,450,90,25);
		guardar.addActionListener(cGuardar);
		
		dibujarManzanas(frame,tamanio);
		
	}

}
